'use client'; import { useEffect, useRef } from 'react'; import { useParams } from 'next/navigation'; import { useAppDispatch } from '@akinon/next/redux/hooks'; import { setCurrentStep } from '@akinon/next/redux/reducers/checkout'; import { ROUTES } from '@theme/routes'; import { useFetchCheckoutResultQuery } from '@akinon/next/data/client/checkout'; import { CheckoutStep } from '@akinon/next/types'; import { CarouselCore } from '@theme/components/carousel-core'; import { Price, Button, Icon, LoaderSpinner, Link } from '@theme/components'; import { CheckoutStepList } from '@theme/views/checkout'; import { useLocalization } from '@akinon/next/hooks'; import { Image } from '@akinon/next/components/image'; import { Trans } from '@akinon/next/components/trans'; import { pushPurchaseEvent } from '@theme/utils/gtm'; const CheckoutCompleted = () => { const params = useParams<{ token: string }>(); const { t } = useLocalization(); const dispatch = useAppDispatch(); const { data, isLoading } = useFetchCheckoutResultQuery(String(params.token)); const carouselRef = useRef(null); const goToPrev = () => { carouselRef.current?.previous(); }; const goToNext = () => { carouselRef.current?.next(); }; useEffect(() => { dispatch(setCurrentStep(CheckoutStep.Confirmation)); return () => { dispatch(setCurrentStep(CheckoutStep.Shipping)); }; }, []); // eslint-disable-line react-hooks/exhaustive-deps useEffect(() => { if (data?.order) { pushPurchaseEvent(data?.order); } }, [data]); if (isLoading) { return (
); } if (!data || !data?.order) { return (
{t('checkout.completed.not_found')}
); } const LinkText = ({ orderNumber, href }) => { return ( {orderNumber} ); }; return (
{t('checkout.completed.title')}

{t('checkout.completed.thank_you')}

) }} />

{t('checkout.completed.purchase_info')}

{t('checkout.completed.your_email')}
{data.order.user_email}
{t('checkout.completed.order_total')}
{t('checkout.completed.payment_type')}
{data.order.payment_option.name}
{t('checkout.completed.order_summary')} {data.order.orderitem_set.length} {' '} {t('checkout.completed.items')}
{data.order.orderitem_set.map((item) => (
{item.product.name} {item.product.name}
{item.retail_price !== item.price && (
)}
))}
{t('checkout.completed.side.whats_next')}

{t('checkout.completed.side.description_first')}

{t('checkout.completed.side.description_second')}:

  • {t('checkout.completed.side.help_contact')}
  • {t('checkout.completed.side.my_account')}
  • {t('checkout.completed.side.faq')}
); }; export default CheckoutCompleted;